package com.hzncc.flowable_diboot.vo.system;

import com.diboot.core.binding.annotation.*;
import com.diboot.core.vo.FileVO;
import com.diboot.core.vo.LabelValue;
import com.diboot.iam.entity.IamOrg;
import com.diboot.iam.entity.IamPosition;
import com.diboot.iam.entity.IamRole;
import com.diboot.iam.entity.IamUser;
import com.diboot.file.entity.FileRecord;
import com.diboot.tenant.entity.IamTenant;
import com.hzncc.flowable_diboot.entity.system.OaDept;
import com.hzncc.flowable_diboot.entity.system.OaUser;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.time.LocalDate;

/**
* OA人员 VO定义
* @author MyName
* @version 1.0
* @date 2025-03-05
* Copyright © MyCorp
*/
@Getter @Setter @Accessors(chain = true)
public class OaUserListVO extends OaUser  {
private static final long serialVersionUID = 1874086854652358869L;

    /**
    * 租户 关联信息
    */
    @BindField(entity = IamTenant.class, field = "name", condition = "this.tenant_id = id")
    private String tenantIdLabel;

    /**
    * 性别 关联字典选项
    */
    @BindDict(type = "GENDER", field = "gender")
    private LabelValue genderLabel;

    /**
    * 创建人 关联信息
    */
    @BindField(entity = IamUser.class, field = "realname", condition = "this.create_by = id")
    private String createByLabel;

    /**
    * 更新人 关联信息
    */
    @BindField(entity = IamUser.class, field = "realname", condition = "this.update_by = id")
    private String updateByLabel;

    /**
     * 更新人 关联信息
     */
    @BindEntity(entity = OaDept.class,condition = "this.parent = id",deepBind = true)
    private OaDeptListVO OaDept;

    private String departmentFullName;

}